package filtro;

import java.util.ArrayList;
import java.util.Collection;

import vuelo.Vuelo;
import vuelo.VueloDirecto;
import asiento.Asiento;
import busqueda.Busqueda;


public abstract class Filtro {
	
	public Collection<Vuelo> filtrar (Collection<Vuelo> colVuelos, Busqueda busqueda){
		Collection<Vuelo> vuelos = new ArrayList<Vuelo>();
		for (Vuelo vuelo : colVuelos){
			vuelos.add(vuelo.filtrar(this, busqueda));
		}
		return vuelos;
	}

	public VueloDirecto filtrarVueloDirecto(VueloDirecto vuelo, Busqueda busqueda) {
		
		
		for(Asiento asiento : vuelo.getAsientos()){
			if(this.cumpleCondicionParaSerRemovido(asiento, busqueda)){
				vuelo.getAsientos().remove(asiento);
			}
		}
		if(vuelo.getAsientos() == null){
			return null;
		}
		else{
			return vuelo;
		}
	}

	abstract public boolean cumpleCondicionParaSerRemovido(Asiento asiento, Busqueda busqueda);
}
